The Bitter Lesson 苦涩的教训

Rich Sutton 2019年3月13日


从70年的AI研究中,我们可以得到的最重要的教训是,那些充分利用计算能力的通用方法最终将显示出最大的效能,而且优势明显。这主要得益于摩尔定律,或者更确切地说,是单位计算成本持续指数级下降的普遍规律。大多数AI研究都是在假设智能体可用的计算资源是恒定的情况下进行的(在这种情况下,利用人类知识会是提高性能的主要方式之一),但实际上,在稍长于一般研究项目的时间范围内,大规模的计算资源必然会变得可用。研究者为了寻求短期内能带来实质性改进的方法,往往试图利用他们对领域的人类知识,然而从长远来看,真正重要的是充分利用计算能力。这两种方法并不必然冲突,但在实际操作中,它们往往是冲突的。投入一方的时间就意味着不能投入另一方。人们对投资于一种或另一种方法有心理上的承诺。而且,依赖人类知识的方法往往会增加方法的复杂性,使它们不适合充分利用计算的通用方法。AI研究人员在晚期才学到这个苦涩的教训,回顾一些最显著的例子是有启发性的。

在电脑棋类游戏中,1997年击败世界冠军卡斯帕罗夫的方法基于大规模的深度搜索。当时,大多数电脑棋类研究人员对此感到失望,因为他们追求的方法是利用人类对棋类特殊结构的理解。当一个更简单的,基于特殊硬件和软件的搜索方法被证明更有效时,这些依赖人类知识的棋类研究人员并未能从容接受失败。他们认为,“暴力”搜索可能这次赢了,但它不是一种通用策略,而且,这并不是人们下棋的方式。这些研究人员希望基于人类输入的方法能够胜出,当他们未能胜出时,他们感到失望。

在电脑围棋研究中,也出现了类似的研究进展模式,只是比电脑棋类游戏晚了20年。最初,大量的努力都投入到了通过利用人类知识或游戏的特殊特性来避免搜索的尝试中,但一旦大规模有效地应用搜索,所有这些努力都被证明是无关紧要的,甚至是有害的。同样重要的是,通过自我对弈来学习价值函数的方法也起到了重要的作用(就像在许多其他游戏甚至在棋类游戏中一样,尽管在1997年首次击败世界冠军的程序中,学习并没有起到重要的作用)。自我对弈的学习,以及一般的学习,就像搜索一样,它使得大规模的计算能够得到应用。搜索和学习是利用AI研究中大量计算的两个最重要的技术类别。在电脑围棋中,就像在电脑棋类游戏中一样,研究人员最初的努力是向着利用人类理解(以便需要更少的搜索)方向,只有在后来,通过接受搜索和学习,才取得了更大的成功。

在语音识别方面,1970年代,由DARPA赞助的一次早期比赛。参赛者包括一系列利用人类知识的特殊方法 - 单词的知识,音素的知识,人类声道的知识等。另一方面,有一些新的方法,它们更多的是基于统计性质,并进行了更多的计算,基于隐藏马尔科夫模型(HMMs)。同样,统计方法战胜了基于人类知识的方法。这导致了自然语言处理的一次重大变革,逐渐在几十年中,统计和计算开始主导这个领域。深度学习在语音识别中的最近崛起是这一一致方向的最新步骤。深度学习方法更少地依赖人类知识,使用更多的计算,以及在巨大的训练集上的学习,以产生显著更好的语音识别系统。就像在游戏中一样,研究人员总是试图制作出像他们认为他们自己的思维方式一样工作的系统 - 他们试图把那种知识放入他们的系统 - 但最终这证明是适得其反的,当通过摩尔定律,大量的计算变得可用,并且找到了一种有效利用它的方法时,这种方式浪费了研究者的时间。

在计算机视觉中,也有类似的模式。早期的方法认为视觉是寻找边缘,或者是寻找广义的圆柱,或者是以SIFT特征的方式。但是现在所有这些都被抛弃了。现代的深度学习神经网络只使用卷积和某种类型的不变性的概念,并且表现得更好。

这是一个重大的教训。作为一个领域,我们还没有完全学会它,因为我们仍然在犯同样的错误。要看到这一点,并有效地抵制它,我们必须理解这些错误的吸引力。我们必须学习到一个苦涩的教训,那就是,以我们认为我们的思考方式来构建并不会在长期内有效。苦涩的教训是基于以下历史观察:1)AI研究人员经常试图将知识构建到他们的智能体中,2)这总是在短期内有所帮助,并且对研究者个人来说是令人满意的,但3)在长期内它会达到平台期甚至阻碍进一步的进步,4)突破性的进步最终来自一种基于通过搜索和学习来扩展计算的对立方法。最终的成功带有一丝苦涩,而且通常被不完全消化,因为它是对一种以人为中心的方法的成功。

从苦涩的教训中应该学到的一件事是通用方法的巨大力量,即那些随着可用计算增加而持续扩展的方法,即使可用计算变得非常大。似乎能够以这种方式任意扩展的两种方法是搜索和学习。

从苦涩的教训中应该学到的第二个一般性的观点是,心灵的实际内容极其复杂,无法挽回地复杂;我们应该停止试图找到简单的方式来思考心灵的内容,比如简单的方式来思考空间,对象,多个智能体,或对称性。所有这些都是外部世界的任意,本质上复杂的部分。他们不应该被构建进去,因为他们的复杂性是无尽的;相反,我们应该只构建那些可以找到并捕捉这种任意复杂性的元方法。这些方法的关键是它们能够找到好的近似,但寻找它们应该由我们的方法来完成,而不是由我们来完成。我们希望AI智能体能够像我们一样发现,而不是包含我们已经发现的东西。构建我们的发现只会使看到发现过程如何进行变得更困难。


原文:

http://www.incompleteideas.net/IncIdeas/BitterLesson.html